#ifndef PROTREEWIDGET_H
#define PROTREEWIDGET_H
#include <QTreeWidget>
#include <QHeaderView>
#include <QSet>
#include <QAction>
#include <QProgressDialog>
#include "protreethread.h"

// 目录树
class ProTreeWidget : public QTreeWidget
{
    Q_OBJECT
public:
    ProTreeWidget(QWidget *parent = nullptr);
    // 创建根目录
    void AddItemToProTree(const QString& name,const QString& path);
public slots:
    // 槽函数保持和对应信号的参数一致
    void SlotHanderItemPressed(QTreeWidgetItem *item, int column);
    void SlotHanderActImportDir();
    void SlotHandlerUpdatePro(int file_count);
    void SlotHandlerFinishPro();
    void SlotHanlderCancel();
signals:
    void SigCancelImport();


private:
    QSet<QString> _set_path;
    // 菜单对应的动作
    // 导入文件
    QAction* _act_imoprt_file;
    // 右击的节点
    QTreeWidgetItem* _right_btn_item;
    // 导入文件夹的线程
    std::shared_ptr<ProTreeThread> _thread_importDir;
    // 模态对话框-进度条
    QProgressDialog* _dialog_progress;
};

#endif // PROTREEWIDGET_H
